package org.cheniy.domain.strategy.service.rule.chain;

import org.cheniy.domain.strategy.service.rule.chain.factory.DefaultChainFactory;

/**
 * @author cheniy
 * @description 责任链的接口方法-责任链的基本需要实现的方法
 * @create 2025/3/7 22:15
 */
public interface ILogicChain {

    /**
     * 责任链节点实现过滤
     * @param userId
     * @param strategyId
     * @return
     */
    DefaultChainFactory.StrategyAwardVO logic(String userId, Long strategyId);

    /**
     * 转到下一个责任链节点
     * @return
     */
    ILogicChain next();

    /**
     * 搭建下一个责任链节点
     * @param next
     * @return
     */
    ILogicChain appendNext(ILogicChain next);
}
